<!-- 任务详情 》 任务设备 -->

<template>
  <div>
    <MajorTitle :title="`${GETTER.title}${GETTER.target}列表`" />

    <ParamTab v-if="one.handleStatus !== 1" :param="one" class="marginBottom" @change="changeTab" />

    <WebTable :path="GETTER.path" auto>
      <RowIndex />
      <RowText :label="`${CORE.MAP.ASSET}编号`" bind="assetCode" :width="120" />
      <RowText :label="`${CORE.MAP.ASSET}名称`" bind="assetName" :minWidth="100" />
      <RowText :label="`${CORE.MAP.ASSET}分类`" bind="assetTypeName" />
      <RowTree :label="`所在${CORE.MAP.REGION}`" bind="areaId" :dict="CORE.REGION.DICT" allName :minWidth="100" />
      <RowStatus :label="`${GETTER.title}结果`" bind="resultStatus" />
      <RowOperate v-bind="operateProps" />
    </WebTable>
  </div>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'TaskDevice',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixWeb(), CORE.mixWeb('device1', 'device1_'), CORE.mixWeb('device2', 'device2_')],

  /**
   * 计算属性 (慎用箭头函数)
   */
  computed: {
    /**
     * 操作属性
     */
    operateProps() {
      const { one: { tab }, DICT: { TAB } } = this
      const btn = tab === TAB[0][0] ? 'edit' : 'show'
      return { label: '详情', btns: [btn], edit: '处理', width: 80, newOne: true }
    },
  },

  /**
   * 监听属性 (深度 deep 首次 immediate)
   */
  watch: {
    /**
     * 监听单项就绪
     */
    readyOne: {
      immediate: true,
      handler(ready) {
        const { DICT: { TAB }, one: { handleStatus } } = this
        ready && this.changeTab(TAB[handleStatus === 1 ? 1 : 0][0])
      },
    },
  },

  /**
   * 本地方法 (轻量重要在前)
   */
  methods: {
    /**
     * 切换页签
     */
    changeTab(tab) {
      this[`device${tab}_startList`](1)
    },
  },
}
</script>
